package com.nebula.service;

import com.nebula.common.PageResult;
import com.nebula.common.Result;
import com.nebula.entity.User;
import com.nebula.vo.UserVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author CcccX
 * @create 2019-01-09 14:50
 */
public interface IUserService{

    /**
     * 登录
     * @param username 用户名
     * @param password 密码
     * @param request request
     * @return String errMsg
     */
    Result login(String username, String password, HttpServletRequest request);

    /**
     * 注册用户
     * @param user 用户实体
     * @return 0-注册失败，1-注册成功
     */
    int save(User user);

    /**
     * 检查权限
     * @param roleId 角色ID
     * @param navId 菜单ID
     * @return boolean
     */
    boolean checkNavRole(Integer roleId, String navId);

    void update(User user);

    User findById(String id);

    List<User> findAll();

    PageResult<UserVo> findAllAndPage(int page, int size);

    int delete(String id);

    User findByUsername(String username);
}
